#coding:utf-8

####################################################################
##  一，脚本语法说明：
##  [类型字段, 命令字段, 匹配结果字段, 超时时间字段, 错误等级字段]
##  1，类型字段：
##        0：AT命令
##        1：延迟
##        2：数据
##		  3：命令嵌套
##	2，命令字段：
##		1）AT命令
##		[0, 'AT命令字符串', '匹配结果', 超时时间（单位s）, 错误等级字段]
##		2）延迟命令
##		[1, 延迟时间（单位ms）, '', '', '']
##		3）发送数据
##		[2, '数据内容', '匹配结果', 超时时间(单位s), 错误等级字段]
##		4）命令嵌套
##		[2, 命令列表名称, '', '', 错误等级字段]
##	3，匹配结果字段：
##		1）单行字符串('string')：按照字符串查找方式，匹配AT返回中的某一行，如果匹配成功就认为命令执行成功
##		2) 单行正则表达式(Reg('reg')): 按照正则表达式匹配方式，匹配AT返回中某一行，如果匹配成功就认为命令执行成功
##		3）多行字符串(FullMatch('string_line1\r\nstring_line2')): 按照字符串查找方式，匹配AT返回中的多行，如果匹配成功就认为命令执行成功
##		4）多行正则表达式(ReMatch('reg1[\s\S]+reg2')): 按照正则表达式匹配方式，匹配AT返回的多行，如果匹配成功就认为命令执行成功
##	4，超时时间字段：
##		如果执行【命令字段】后没有匹配到【匹配结果字段】，就会等待超时，超时时间单位为s
##	5，错误等级字段
##		0：忽略该条命令匹配错误继续执行下一行
##		1：如果该条命令匹配错误就停止执行
####################################################################

http_360s_bin = [
# ssl = 1
	[0,'AT+SSLCFG="seclevel",153,1', 'OK', 1, 1],
	[0,'AT+SSLCFG="cacert",153,"360-2.crt"', 'OK', 1, 1],
	[0,'AT+HTTPTERM', 'OK', 5, 0],
	[0,'AT+HTTPINIT', 'OK', 5, 1],
	[0,'AT+HTTPSSL=1', 'OK', 5, 1],
	[0,'AT+HTTPPARA="CID",1', 'OK', 5, 1],
	[0,'AT+HTTPPARA="URL","https://www.so.com"', 'OK', 1, 1],
	[0,'AT+HTTPACTION=0', Reg(r'\+HTTPACTION: 1,200,[0-9]+'), 120, 1],
	[0,'AT+HTTPREAD', 'OK', 20,1],
	[0,'AT+HTTPTERM', 'OK', 20, 1],
	[0,'AT+SSLCFG="seclevel",153,0', 'OK', 1, 1],
]

http_baidus_bin = [
# ssl = 1
	[0,'AT+SSLCFG="seclevel",153,1', 'OK', 1, 1],
	[0,'AT+SSLCFG="cacert",153,"baidu.crt"', 'OK', 1, 1],
	[0,'AT+HTTPTERM', 'OK', 5, 0],
	[0,'AT+HTTPINIT', 'OK', 5, 1],
	[0,'AT+HTTPSSL=1', 'OK', 5, 1],
	[0,'AT+HTTPPARA="CID",1', 'OK', 5, 1],
	[0,'AT+HTTPPARA="URL","https://www.baidu.com"', 'OK', 1, 1],
	[0,'AT+HTTPACTION=0', Reg(r'\+HTTPACTION: 1,200,[0-9]+'), 120, 1],
	[0,'AT+HTTPREAD', 'OK', 20,1],
	[0,'AT+HTTPTERM', 'OK', 20, 1],
	[0,'AT+SSLCFG="seclevel",153,0', 'OK', 1, 1],
]
http_bin = [
	[0,'AT+HTTPTERM', 'OK', 5, 0],
	[0,'AT+HTTPINIT', 'OK', 5, 1],
	[0,'AT+HTTPPARA="CID",1', 'OK', 5, 1],
	[0,'AT+HTTPPARA="URL","http://httpbin.org/post"', 'OK', 1, 1],
	[0,'AT+HTTPPARA="USERDATA","Content-Type:application/json"',FullMatch('OK'), 1, 1],

	[0,'AT+HTTPDATA=15,4000', FullMatch('DOWNLOAD'), 5, 1],
	[0,'data=1234567890', FullMatch('OK'), 5, 1],
	[0,'AT+HTTPACTION=1', Reg(r'\+HTTPACTION: 1,200,[0-9]+'), 120, 1],
	[0,'AT+HTTPREAD', 'OK', 5, 1],
	[0,'AT+HTTPREAD=28,15', FullMatch('+HTTPREAD: 15\r\ndata=1234567890\r\nOK\r\n'), 1, 1],

	[0,'AT+HTTPDATA=197,4000', FullMatch('DOWNLOAD'), 5, 1],
	[0,'data=111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111', FullMatch('OK'), 5, 1],
	[0,'AT+HTTPACTION=1', Reg(r'\+HTTPACTION: 1,200,[0-9]+'), 120, 1],
	[0,'AT+HTTPREAD=28,197', FullMatch('+HTTPREAD: 197\r\ndata=111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r\nOK\r\n'), 1, 1],


	[0,'AT+HTTPDATA=500,4000', FullMatch('DOWNLOAD'), 5, 1],
	[0,'11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222211111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222333333333333333333333333333333333333333333333333334', FullMatch('OK'), 5, 1],
	[0,'AT+HTTPACTION=1', Reg(r'\+HTTPACTION: 1,200,[0-9]+'), 120, 1],
	[0,'AT+HTTPREAD=28,500', FullMatch('+HTTPREAD: 500\r\n11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222211111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222333333333333333333333333333333333333333333333333334\r\nOK\r\n'), 1, 1],
	[0,'AT+HTTPTERM', 'OK', 20, 1],
]
http_ssl_bin = [
# ssl = 1
	[0,'AT+HTTPTERM', 'OK', 5, 0],
	[0,'AT+HTTPINIT', 'OK', 5, 1],
	[0,'AT+HTTPSSL=1', 'OK', 5, 1],
	[0,'AT+SSLCFG="hostname",153,"httpbin.org"', 'OK', 1, 1],
	[0,'AT+HTTPPARA="CID",1', 'OK', 5, 1],
	[0,'AT+HTTPPARA="URL","https://httpbin.org/post"', 'OK', 1, 1],
	[0,'AT+HTTPPARA="USERDATA","Content-Type:application/json"',FullMatch('OK'), 1, 1],

	[0,'AT+HTTPDATA=15,4000', FullMatch('DOWNLOAD'), 5, 1],
	[2,'data=1234567890', FullMatch('OK'), 5, 1],
	[0,'AT+HTTPACTION=1', Reg(r'\+HTTPACTION: 1,200,\d+'), 120, 1],
	[0,'AT+HTTPREAD', ReMatch('\+HTTPREAD: \d+\r\n[\s\S]+"url": "https://httpbin.org/post"\n}\n\r\nOK\r\n'), 5, 1],
	[0,'AT+HTTPREAD=28,15', FullMatch('+HTTPREAD: 15\r\ndata=1234567890\r\nOK\r\n'), 1, 1],

	[0,'AT+HTTPDATA=197,4000', FullMatch('DOWNLOAD'), 5, 1],
	[2,'data=111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111', FullMatch('OK'), 5, 1],
	[0,'AT+HTTPACTION=1', Reg(r'\+HTTPACTION: 1,200,[0-9]+'), 120, 1],
	[0,'AT+HTTPREAD=28,197', FullMatch('+HTTPREAD: 197\r\ndata=111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111\r\nOK\r\n'), 1, 1],


	[0,'AT+HTTPDATA=500,4000', FullMatch('DOWNLOAD'), 5, 1],
	[2,'11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222211111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222333333333333333333333333333333333333333333333333334', FullMatch('OK'), 5, 1],
	[0,'AT+HTTPACTION=1', Reg(r'\+HTTPACTION: 1,200,\d+'), 120, 1],
	[0,'AT+HTTPREAD=28,500', FullMatch('+HTTPREAD: 500\r\n11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111122222222222222222222222222222222222211111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222333333333333333333333333333333333333333333333333334\r\nOK\r\n'), 1, 1],
	[0,'AT+HTTPTERM', 'OK', 20, 1],

]
http_openluat = [
	[0,'AT+HTTPTERM', 'OK', 5, 0],
	[0,'AT+HTTPINIT', 'OK', 5, 1],
	[0,'AT+HTTPPARA="CID",1', 'OK', 5, 1],
	[0,'AT+HTTPPARA="URL","iot.openluat.com/api/site/http_test"', 'OK', 5, 1],
	[0,'AT+HTTPPARA="USERDATA","Content-Type:application/x-www-form-urlencoded"',FullMatch('OK'), 5, 1],
# ssl = 1
	[0,'AT+HTTPSSL=1', FullMatch('OK'), 5, 1],
	[0,'AT+HTTPACTION=0', Reg(r'\+HTTPACTION: 0,200,67520'), 120, 1],
	[0,'AT+HTTPREAD=0,64', FullMatch('+HTTPREAD: 64\r\n1111111111111111111111111111111111111111111111111111111111111111\r\nOK\r\n'), 5, 1],
	[0,'AT+HTTPREAD=37376,64', FullMatch('+HTTPREAD: 64\r\n5555555555555555555555555555555555555555555555555555555555555555\r\nOK\r\n'), 5, 1],
	[0,'AT+HTTPREAD=67200,256', FullMatch('+HTTPREAD: 256\r\n1111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222233333333333333333333333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444444444444444444444\r\nOK\r\n'), 5, 1],
	[0,'AT+HTTPREAD', FullMatch('OK'), 20,1],

#ssl = 0
	[0,'AT+HTTPSSL=0', FullMatch('OK'), 5, 1],
	[0,'AT+HTTPACTION=0', Reg(r'\+HTTPACTION: 0,200,67520'), 120, 1],
	[0,'AT+HTTPREAD=0,64', FullMatch('+HTTPREAD: 64\r\n1111111111111111111111111111111111111111111111111111111111111111\r\nOK\r\n'), 5, 1],
	[0,'AT+HTTPREAD=37376,64', FullMatch('+HTTPREAD: 64\r\n5555555555555555555555555555555555555555555555555555555555555555\r\nOK\r\n'), 5, 1],
	[0,'AT+HTTPREAD=67200,256', FullMatch('+HTTPREAD: 256\r\n1111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222233333333333333333333333333333333333333333333333333333333333333334444444444444444444444444444444444444444444444444444444444444444\r\nOK\r\n'), 5, 1],
	[0,'AT+HTTPREAD', 'OK', 20,1],

	[0,'AT+HTTPPARA="URL","wwieot.owpenlueat.eceom/api/site/http_test"', 'OK', 5, 1],
	[0,'AT+HTTPACTION=0', Reg(r'\+HTTPACTION: [0-2]+,[0-6]+,[0-9]+'), 120, 1],

	[0,'AT+HTTPTERM', 'OK', 5, 1],
]